package com.smile.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.smile.commons.gps.PlanarAirlineService;
import com.smile.model.dto.request.*;
import com.smile.model.response.response.*;

import java.io.IOException;

public interface AirlineService {
    Long addAirlineName(AddAirlineRequestDTO addAirlineRequestDTO);

    Boolean editAirlineName(EditAirlineRequestDTO editAirlineRequestDTO);

    Boolean addAirline(AddAirlineRequestDTO addAirlineRequestDTO);
    Page<GetAirLineListResponseDTO> getAirlineList(GetAirlineListRequestDTO getAirlineListRequestDTO);

    Boolean editAirline(EditAirlineRequestDTO editAirlineRequestDTO);

    GetAirlineByIdResponseDTO getAirlineById(GetAirlineByIdRequestDTO getAirlineByIdRequestDTO);
    UpdatePlanarAirlineResponseDTO getPlanarAirlineById(GetAirlineByIdRequestDTO getAirlineByIdRequestDTO);

    Boolean deleteAirline(Long deleteAirlineRequestDTO);

    Boolean deleteAirlineByOrganizationId(Long id);

    void addPlanarAirline(AddPlanarAirlineRequestDTO addPlanarAirlineRequestDTO) throws IOException;
    GetPlanarAirlineResultResponseDTO generatorPlanarAirline(GeneratorPlanarAirlineRequestDTO generatorPlanarAirlineRequestDTO) throws IOException;

    void updatePlanarAirline(AddPlanarAirlineRequestDTO addPlanarAirlineRequestDTO) throws IOException;
    Long copyAirline(Long airlineId);
//    void updatePlanarAirline(UpdatePlanarAirlineRequestDTO updatePlanarAirlineRequestDTO) throws IOException;

    GetAirlineByAirlineCodeResponseDTO getAirlineByAirlineCode(GetAirlineByAirlineCodeRequestDTO getAirlineByAirlineCodeRequestDTO);
}
